package com.ruoyi.system.mapper;

import java.util.List;
import com.ruoyi.system.domain.Qstag;
import org.apache.ibatis.annotations.Param;

/**
 * 变量寄存器配置Mapper接口
 * 
 * @author yaozh
 * @date 2024-02-24
 */
public interface QstagMapper 
{
    int updateObjectByTagIdForImport(@Param("dBname") String dBname,@Param("qstag") Qstag qstag);

    int deleteObjectByItemId(@Param("dBname") String dBname, @Param("itemId") String itemId);

    /**
     * 返回点表所有数据，select * from `${dBname}`.qstag
     * @param dBname
     * @return
     */
    List<Qstag> findAll(@Param("dBname") String dBname);

    /**
     * 根据tagName的中文名称（tagNameCN字段）进行等值查询
     * @param dbName
     * @param tagNameCN
     */
    Qstag findObjectByTagNameCnEquals(@Param("dbName") String dbName, @Param("tagNameCN") String tagNameCN);

    List<Qstag> findAllQsTagOfTagNameCN(@Param("dbName") String dbName);

    List<Qstag> findAllByTagNameCNLike(@Param("dbName") String dbName, @Param("tagName") String tagName);

    int updateFormulaByTagName(@Param("dBname") String dBname,@Param("qstag") Qstag qstag);

    /**
     * 修改公式
     * @param dBname
     * @param qstag
     * @return
     */
    int updateFormula(@Param("dBname") String dBname,@Param("qstag") Qstag qstag);

    Qstag findObjectByTagNameEquals(@Param("dbName") String dbName, @Param("tagName") String tagName);

    Qstag findObjectByItemId(@Param("dBname")String dBname,@Param("itemId") String itemId);

    List<Qstag> findAllByItemDrIdAndItemId(@Param("dbName") String dbName, @Param("itemDrId") Integer itemDrId, @Param("itemId") String itemId);

    /**
     * 根据tagName进行模糊查询
     * @param dbName
     * @param tagName
     * @return
     */
    List<Qstag> findAllByTagNameLike(@Param("dbName") String dbName, @Param("tagName") String tagName);

    /**
     * 新增寄存器
     * @param dBname
     * @param qstag
     * @return
     */
    int insertObject(@Param("dBname") String dBname,@Param("qstag") Qstag qstag);

    /**
     * 查询变量寄存器配置
     * 
     * @param tagid 变量寄存器配置主键
     * @return 变量寄存器配置
     */
    public Qstag selectQstagByTagid(@Param("tagid") Long tagid,@Param("dbName") String dbName);

    /**
     * 查询变量寄存器配置列表
     * 
     * @param qstag 变量寄存器配置
     * @return 变量寄存器配置集合
     */
    public List<Qstag> selectQstagList(@Param("qstag") Qstag qstag,@Param("dbName") String dbName);

    public List<Qstag> selectHomepageQsTagList(@Param("dbName") String dbName);

    public List<Qstag> selectQstagByItemId(@Param("itemId") String itemId,@Param("dbName") String dbName);

    public List<Qstag> findObjectByTagIds(@Param("tagIds") Long[] tagIds,@Param("dbName") String dbName);

    /**
     * 新增变量寄存器配置
     * 
     * @param qstag 变量寄存器配置
     * @return 结果
     */
    public int insertQstag(@Param("qstag") Qstag qstag,@Param("dbName") String dbName);

    /**
     * 修改变量寄存器配置
     * 
     * @param qstag 变量寄存器配置
     * @return 结果
     */
    public int updateQstag(@Param("qstag") Qstag qstag,@Param("dbName") String dbName);

    /**
     * 删除变量寄存器配置
     * 
     * @param tagid 变量寄存器配置主键
     * @return 结果
     */
    public int deleteQstagByTagid(@Param("tagid") Long tagid,@Param("dbName") String dbName);

    /**
     * 批量删除变量寄存器配置
     * 
     * @param tagids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteQstagByTagids(@Param("tagids") Long[] tagids,@Param("dbName") String dbName);
}
